﻿
// TxMediaAppDlg.h: 头文件
//

#pragma once
#include "ITxMedia.h"
#include "./tx_video_render_wnd.h"

// CTxMediaAppDlg 对话框
class CTxMediaAppDlg : public CDialogEx
{
// 构造
public:
	CTxMediaAppDlg(CWnd* pParent = nullptr);	// 标准构造函数

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_TXMEDIAAPP_DIALOG };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持

protected:
	TxVideoRenderWnd _localVideoRenderWnd;
	TxVideoRenderWnd _remoteVideoRenderWnd;
	//TxMedia _txMedia;
	ITxMedia::sptr _txMedia;

	int _localVideoChannel = -1;
	int _remoteVideoChannel = -1;
	int _audioChannel = -1;

	void OnVideoFrame(int channel, unsigned char* buffer, int buffer_size,
		int width, int height,
		uint32_t time_stamp, // RTP timestamp in 90kHz.
		int64_t render_time // Wallclock render time in miliseconds>;
	);
// 实现
protected:
	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnDestroy();
	afx_msg void OnBnClickedBtnStartPreview();
	afx_msg void OnBnClickedBtnStopPreview();
	afx_msg void OnBnClickedBtnStartSendVideo();
	afx_msg void OnBnClickedBtnStopSendVideo();
	afx_msg void OnBnClickedBtnStartSendAudio();
	afx_msg void OnBnClickedBtnStopSendAudio();
	afx_msg void OnBnClickedBtnStartPlayout();
	afx_msg void OnBnClickedBtnStopPlayout();
	afx_msg void OnCbnSelchangeCboCamera();
	afx_msg void OnCbnSelchangeCboRecording();
	afx_msg void OnCbnSelchangeCboPlayout();
	afx_msg void OnBnClickedCheckAgc();
	afx_msg void OnBnClickedCheckEc();
	afx_msg void OnBnClickedCheckNs();
	afx_msg void OnBnClickedCheckAgcRemote();
	afx_msg void OnBnClickedCheckNsRemote();
	afx_msg void OnBnClickedCheckMute();
	afx_msg void OnBnClickedBtnRecordOutgoingVideo();
	afx_msg void OnBnClickedBtnRecordIncomingVideo();
};
